﻿/*
 * Mr.Chau
 * Form Chính - quản lý
 */
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars;
using DevExpress.LookAndFeel;
using NangLuongTieuDiemGUI.NangLuongTieuDiemUserControl;
using NangLuongTieuDiemGUI.NangLuongTieuDiemForms;
using NangLuongTieuDiemBUS;
using NangLuongTieuDiemDTO.DTO;

namespace NangLuongTieuDiemGUI
{
    public partial class NangLuongTieuDiem : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        #region "[các biến toàn cục]"

        /// <summary>
        /// biến thay đổi giao diện
        /// </summary>
        public static int m_iFlagTheme = -1;

        #endregion

        #region "[Khởi tạo]"
        public NangLuongTieuDiem()
        {
            InitializeComponent();
        }
        #endregion

        #region "[Load]"
        private void NangLuongTieuDiem_Load(object sender, EventArgs e)
        {
            try
            {
                DevExpress.UserSkins.OfficeSkins.Register();
                DevExpress.UserSkins.BonusSkins.Register();
                if (Properties.Settings.Default.IDThem > 0)
                    UserLookAndFeel.Default.SetSkinStyle(ClassUtils.ChangeThemes.GetListTheme()[Properties.Settings.Default.IDThem]);
                else
                    UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue");

                //tìm đường dẫn đến CSDL.
                string str = ClassUtils.Utils.ReadFileTxt();
                if (str == null)
                {
                    barButtonItem1_ItemClick(null, null);
                    str = ClassUtils.Utils.ReadFileTxt();
                    if (str != null)
                        NangLuongTieuDiem_Management.CauHinh(str);
                }
                else
                    NangLuongTieuDiem_Management.CauHinh(str);

            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("NangLuongTieuDiem_Load", ex);
            }
        }
        #endregion

        #region "[thay dổi giao diện Previous]"
        private void btnPrevTheme_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                m_iFlagTheme--;
                if (m_iFlagTheme > -1)
                    UserLookAndFeel.Default.SetSkinStyle(ClassUtils.ChangeThemes.GetListTheme()[m_iFlagTheme]);
                else
                    m_iFlagTheme = ClassUtils.ChangeThemes.GetListTheme().Count - 1;
                saveThemes();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("btnPrevTheme_ItemClick", ex);
            }
        }
        private static void saveThemes()
        {
            Properties.Settings.Default.IDThem = m_iFlagTheme;
            Properties.Settings.Default.Save();
        }
        #endregion

        #region "[Thay đổi giao diện Next]"
        private void btnNextTheme_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                m_iFlagTheme++;
                if (m_iFlagTheme < ClassUtils.ChangeThemes.GetListTheme().Count)
                    UserLookAndFeel.Default.SetSkinStyle(ClassUtils.ChangeThemes.GetListTheme()[m_iFlagTheme]);
                else
                    m_iFlagTheme = -1;
                saveThemes();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("btnNextTheme_ItemClick", ex);
            }
        }
        #endregion

        #region "[chức năng nhập sản phẩm]"
        private void btnNhapSanPham_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                ShowUCNhapSanPham(false);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("btnNhapSanPham_ItemClick", ex);
            }
        }

        private void ShowUCNhapSanPham(bool _IsFlag)
        {
            try
            {
                if (!_IsFlag)
                {
                    ucNhapSanPham uc = new ucNhapSanPham();
                    uc.showItem = ClearItem;
                    uc.showUcItem = ShowUCNhapSapPhamTuFileExcel;
                    uc.Dock = DockStyle.Fill;
                    pnMain.Controls.Clear();
                    pnMain.Controls.Add(uc);
                }
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ShowUCNhapSanPham", ex);
            }
        }
        #endregion

        #region "[Chức năng nhập thiết bị điện]"
        private void btnNhapThietBiDien_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                ShowUserControlNhapThietBiDien();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("btnNhapThietBiDien_ItemClick", ex);
            }
        }

        private void ShowUserControlNhapThietBiDien()
        {
            try
            {
                ucNhapThietBiDien uc = new ucNhapThietBiDien();
                uc.showItem = ClearItem;
                uc.showUcNhapThietBiTuFileExcel = UCNhapThietBiTuFileExcel;
                uc.Dock = DockStyle.Fill;
                pnMain.Controls.Clear();
                pnMain.Controls.Add(uc);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ShowUserControlNhapThietBiDien", ex);
            }
        }
        #endregion

        #region "[Tính công suất các thiết bị điện trong gia đình khách hàng]"
        private void btnTinhCongSuat_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                ucTinhCongSuatThietBiDien uc = new ucTinhCongSuatThietBiDien();
                uc.showItem = ClearItem;
                uc.showLapHoaDonUC = ShowUCLapHoaDon;
                uc.Dock = DockStyle.Fill;
                pnMain.Controls.Clear();
                pnMain.Controls.Add(uc);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("btnTinhCongSuat_ItemClick", ex);
            }
        }
        #endregion

        #region "[Chức năng bán hàng - Lập hóa đơn]"
        private void btnHoaDon_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                ShowUCLapHoaDon(false);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("btnHoaDon_ItemClick", ex);
            }
        }
        #endregion

        #region "[Danh sách các sản phẩm]"
        private void btnDanhsachSanPham_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                ucDanhSachSanPham uc = new ucDanhSachSanPham();
                uc.Dock = DockStyle.Fill;
                pnMain.Controls.Clear();
                pnMain.Controls.Add(uc);

            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("btnDanhsachSanPham_ItemClick", ex);
            }
        }
        #endregion

        #region "[Danh sách các thiết bị điện]"
        private void btnDanhsachthietbidien_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                ucDanhSachThietBiDien uc = new ucDanhSachThietBiDien();
                uc.Dock = DockStyle.Fill;
                pnMain.Controls.Clear();
                pnMain.Controls.Add(uc);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("btnDanhsachthietbidien_ItemClick", ex);
            }
        }
        #endregion

        #region "[cấu hình CSDL]"
        private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                NangLuongTieuDiemForms.frmCauHinhSql frm = new NangLuongTieuDiemForms.frmCauHinhSql();
                frm.ShowDialog();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("barButtonItem1_ItemClick", ex);
            }
        }
        #endregion

        #region "[gởi Email cho admin]"
        private void barButtonItem2_ItemClick_1(object sender, ItemClickEventArgs e)
        {
            try {
                pnMain.Controls.Clear();
                ucGoiEmail uc = new ucGoiEmail();
                uc.CloseItem = ClearItem;
                uc.Dock = DockStyle.Fill;
                pnMain.Controls.Add(uc);
            }
            catch { }
        }
        #endregion

        #region "[Xóa các control trên pnmain]"
        /// <summary>
        /// Xóa các control trên pnmain
        /// </summary>
        private void ClearItem(bool _isFlag)
        {
            try
            {
                if (!_isFlag)
                    pnMain.Controls.Clear();
                else
                {
                    ucThemLoaiSanPham uc = new ucThemLoaiSanPham();
                    uc.showItem = NhapSanPhamUserControl;
                    uc.Dock = DockStyle.Fill;
                    pnMain.Controls.Clear();
                    pnMain.Controls.Add(uc);
                }
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ClearItem", ex);
            }
        }
        #endregion

        #region "[show usercontrol Nhập sản phẩm]"
        private void NhapSanPhamUserControl(bool isFlag)
        {
            try {
                btnNhapSanPham_ItemClick(null, null);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("NhapSanPhamUserControl", ex);
            }
        }
        #endregion

        #region "[show uc nhap san pham]"
        /// <summary>
        /// show uc nhap san pham từ file excel
        /// </summary>
        private void ShowUCNhapSapPhamTuFileExcel()
        {
            try
            {
                pnMain.Controls.Clear();
                ucNhapSanPhamTuFileExcel uc = new ucNhapSanPhamTuFileExcel();
                uc.showUcNhapSanPhamItem = ShowUCNhapSanPham;
                uc.showItem = ClearItem;
                uc.Dock = DockStyle.Fill;
                pnMain.Controls.Add(uc);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ShowUCNhapSapPhamTuFileExcel", ex);
            }
        }
        #endregion

        #region "[Nhập thiết bị điện từ file excel]"
        /// <summary>
        ///Hiển thị Nhập thiết bị điện từ file excel
        /// </summary>
        private void UCNhapThietBiTuFileExcel()
        {
            try {
                ucNhapThietBiDienTuFileExcel uc = new ucNhapThietBiDienTuFileExcel();
                uc.ClearItem = ClearItem;
                uc.showItem = ShowUserControlNhapThietBiDien;
                uc.Dock = DockStyle.Fill;
                pnMain.Controls.Clear();
                pnMain.Controls.Add(uc);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("UCNhapThietBiTuFileExcel", ex);
            }
        }
        #endregion

        #region "[Goi Form SaoLuu Va PhucHoi DuLieu (Backup Restore Database)]"
        /// <summary>
        /// Người tạo: Cao Hoang An - 1241301
        /// Goi Form SaoLuu Va PhucHoi DuLieu (Backup Restore Database)
        /// </summary>
        /// <param name="_strLocation"></param>
        private void barButtonSaoLuuPhucHoi_ItemClick(object sender, ItemClickEventArgs e)
        {
            frmSaoLuuVaPhucHoiDuLieu frm = new frmSaoLuuVaPhucHoiDuLieu();
            frm.ShowDialog();
        }
        #endregion

        #region "[Hàm insert lỗi hệ thống]"
        public void InSert_LoiHeThong(string TenHam, Exception ex)
        {
            LoiHeThongDTO lhtDto = new LoiHeThongDTO();
            lhtDto.TenLoi = ex.Message.ToString();
            lhtDto.NgayTao = DateTime.Now;
            lhtDto.TenHamBiLoi = "NangLuongTieuDiem_" + TenHam;
            lhtDto.SuaLoi = false;
            lhtDto.GhiChu = "";
            NangLuongTieuDiem_Management.LoiHeThong_Insert(lhtDto);
            MessageBox.Show(lhtDto.TenLoi);
        }
        #endregion

        #region "[hiển thị usercontrol lập hóa đơn]"
        private void ShowUCLapHoaDon(bool _isFlag)
        {
            try {
                if (!_isFlag)
                {
                    ucLapHoaDonBanHang uc = new ucLapHoaDonBanHang();
                    uc.closeItem = ClearItem;
                    uc.Dock = DockStyle.Fill;
                    pnMain.Controls.Clear();
                    pnMain.Controls.Add(uc);
                }
            }
            catch { }
        }
        #endregion

        private void barButtonItem5_ItemClick(object sender, ItemClickEventArgs e)
        {
            
        }

        private void btn_tuvansanpham_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                ucTuVanSanPham uc = new ucTuVanSanPham();
                uc.Dock = DockStyle.Fill;
                pnMain.Controls.Clear();
                pnMain.Controls.Add(uc);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("btn_tuvansanpham_ItemClick", ex);
            }
        }
    }
}